// 从request模块导入post方法，用于发送HTTP POST请求
import {
  post, get
} from "./request";

/**
 * 获取活动列表
 * @param {number} pageNum - 页码，从1开始
 * @param {number} pageSize - 每页数量
 * @returns {Promise} 返回一个Promise对象，包含活动分页数据
 * @description 调用后端接口获取活动列表数据
 */
export function activityListApi(pageNum, pageSize) {
  // 调用post方法发送分页请求
  return post('/api/user/activity/page', {
    pageNum,
    pageSize
  }, {
	  headers: {
      Authorization: localStorage.getItem('tokenType') + ' ' +localStorage.getItem('accessToken')
    }
  })
}

/**
 * 获取活动分类列表
 * @param {number} pageNum - 页码，从1开始
 * @param {number} pageSize - 每页数量
 * @param {string} type - 分类名称
 * @returns {Promise} 返回一个Promise对象，包含活动分页数据
 * @description 调用后端接口获取活动列表数据
 */
export function activityCategoryApi(pageNum, pageSize, type) {
  // 调用post方法发送分页请求
  return post('/api/user/activity/page', {
    pageNum,
    pageSize,
	type
  }, {
	  headers: {
      Authorization: localStorage.getItem('tokenType') + ' ' +localStorage.getItem('accessToken')
    }
  })
}

/**
 * 获取活动搜索列表
 * @param {number} pageNum - 页码，从1开始
 * @param {number} pageSize - 每页数量
 * @param {string} activityName - 活动名称
 * @returns {Promise} 返回一个Promise对象，包含活动分页数据
 * @description 调用后端接口获取活动列表数据
 */
export function activitySearchApi(pageNum, pageSize, activityName) {
  // 调用post方法发送分页请求
  return post('/api/user/activity/page', {
    pageNum,
    pageSize,
	activityName
  }, {
	  headers: {
      Authorization: localStorage.getItem('tokenType') + ' ' +localStorage.getItem('accessToken')
    }
  })
}

/**
 * 获取活动详情
 * @param {string|number} activityId - 活动ID
 * @returns {Promise} 返回一个Promise对象，包含活动详情数据
 * @description 调用后端接口获取指定活动的详细信息
 */
export function activityDetailApi(activityId) {
  return get(`/api/user/activity/detail/${activityId}`, {
    headers: {
      Authorization: localStorage.getItem('tokenType') + ' ' + localStorage.getItem('accessToken')
    }
  });
}

/**
 * 报名参加活动
 * @param {string|number} activityId - 活动ID
 * @returns {Promise} 返回一个Promise对象，包含报名结果
 * @description 调用后端接口报名参加指定活动
 */
export function joinActivityApi(activityId) {
  return post(`/api/user/studentActivityHistory/join/${activityId}`, {}, {
    headers: {
      Authorization: localStorage.getItem('tokenType') + ' ' + localStorage.getItem('accessToken')
    }
  });
}

/**
 * 取消报名活动
 * @param {string|number} activityId - 活动ID
 * @returns {Promise} 返回一个Promise对象，包含取消报名结果
 * @description 调用后端接口取消报名指定活动
 */
export function cancelActivityApi(activityId) {
  return post(`/api/user/studentActivityHistory/cancel/${activityId}`, {}, {
    headers: {
      Authorization: localStorage.getItem('tokenType') + ' ' + localStorage.getItem('accessToken')
    }
  });
}

